﻿using System.Collections.Generic;
using MediaBrowser.Entities;

namespace MediaBrowser.IRepository
{
    public interface IMediaRepository
    {

        /// <summary>
        /// Retourne la Liste des média
        /// </summary>
        /// <returns></returns>
        IEnumerable<Media> ListMediasByCategory(int idCategory);

        /// <summary>
        /// Modification d'un média
        /// </summary>
        /// <param name="media"></param>
        /// <returns></returns>
        bool UpdateMedia(Media media);

        /// <summary>
        /// Création d'un média
        /// </summary>
        /// <param name="media"></param>
        /// <returns></returns>
        bool CreateMedia(Media media);

        /// <summary>
        /// Suppression d'un média
        /// </summary>
        /// <param name="media"></param>
        /// <returns></returns>
        bool DeleteMedia(Media media);

        /// <summary>
        /// Nombre de Média
        /// </summary>
        /// <returns></returns>
        int CountMedia();

        /// <summary>
        /// Création d'un nouveau media Item
        /// </summary>
        /// <param name="idMedia"></param>
        /// <param name="mediaItem"></param>
        /// <returns></returns>
        bool CreateMediaItem(int idMedia, MediaItem mediaItem);

        /// <summary>
        /// Suppression d'un média Item
        /// </summary>
        /// <param name="media"></param>
        /// <returns></returns>
        bool DeleteMediaItem(int idMedia, MediaItem mediaItem);

        /// <summary>
        /// Nombre de média Item 
        /// </summary>
        /// <param name="idMedia"></param>
        /// <returns></returns>
        int CountMediaItem(int idMedia);
    }
}
